package com.mazewei.config;

import com.mazewei.stock.utils.IdWorker;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;

/**
 * 配置类，用于定义应用中需要的通用Bean
 */
@Configuration
public class CommonConfig {

    /**
     * 创建并返回一个BCryptPasswordEncoder实例，用于密码加密
     * 使用BCrypt算法进行密码加密，保证密码安全
     *
     * @return BCryptPasswordEncoder实例
     */
    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }

    /**
     * 创建并返回一个IdWorker实例，用于生成唯一ID
     * IdWorker可以生成基于Twitter的snowflake算法的唯一ID，适用于分布式系统
     * 这里传入的参数1和2是用于标识工作节点的ID，可以根据实际情况进行调整
     *
     * @return IdWorker实例
     */
    @Bean
    public IdWorker idWorker() {
        return new IdWorker(1l,2l);
    }
}
